home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / docs / rakup / match05.doc < prev    next >
Encoding:
Text File  |  1998-10-03  |  18.7 KB  |  695 lines

  1. ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬
  2. (MATCH05.DOC)
  3.  é¿ïCèyé▓é¡éτé¡âvâìâOâëâ~âôâOôⁿûσ ö╘èOò╥ üuâGâLâXâpü[âgâVâXâeâÇé╠ì∞ɼüv
  4.                                                                ìLêΣü@É╜ 
  5. ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬ä¬
  6.  
  7. ü¢âpâ^ü[âôâ}âbâ`âôâOé⌐éτâGâLâXâpü[âgâVâXâeâÇé╓
  8.  
  9.   é╗éΩé┼é═ Prolog é╠ô«ì∞é≡ÄQìlé╔üAè╚ê╒âGâLâXâpü[âgâVâXâeâÇé≡ì∞ɼé╡é▄é╡éσ
  10.  
  11. éñüBProlog é┼é═üA
  12.  
  13.  
  14.         ÅqîΩ(ê°Éö, ..., ê°Éö).
  15.  
  16.  
  17. é┼ÄûÄ└é≡ÆΦï`é╡é▄é╡é╜é¬üAé▒éΩé≡é╗é╠é▄é▄ Lisp é┼Ä└î╗é╖éΘé╠é═û╩ô|é╚é╠é┼üAâè
  18.  
  19. âXâgé≡Ägé┴é─ăé╠éµéñé╔ò\é╡é▄é╖üB
  20.  
  21.  
  22.         (ÅqîΩ ê°Éö ... ê°Éö)
  23.  
  24.  
  25. é▒é╠é┘éñé¬âpâ^ü[âôâ}âbâ`âôâOé≡é╗é╠é▄é▄ôKùpé┼é½éΘé╠é┼ôsìçé¬éµéóé╠é┼é╖üBÅq
  26.  
  27. îΩé═âpâ^ü[âôò╧Éöê╚èOé╠âVâôâ{âïé┼ò\é╡é▄é╖üBê°Éöé═üAâVâôâ{âïüAâpâ^ü[âôò╧ÉöüA
  28.  
  29. ÉöÆlüAâèâXâgüAé╞é╡é▄é╖üBìíîπüAâpâ^ü[âôò╧Éöé≡üuò╧Éöüvé╞Åæé¡é▒é╞é╔é╡é▄é╖üB
  30.  
  31.  
  32.   Äƒé╔ïKæÑé┼é╖é¬üAProlog é┼é═
  33.  
  34.  
  35.         head :- goal1, goal2, ... goalN.
  36.  
  37.  
  38. é╞ò\é╡é▄é╡é╜é¬üAé▒éΩéαÆPÅâé╚âèâXâgé┼ò\é╖é▒é╞é╔é╡é▄é╖üB
  39.  
  40.  
  41.         (head goal1 goal2 ... goalN)
  42.  
  43.  
  44. âèâXâgé╠ɵô¬é¬ô¬òöé╞é╚éΦüAÄcéΦé¬æ╠òöé╞é╚éΦé▄é╖üBé╜é╛é╡üAé▒é╠é▄é▄é┼é═ÄûÄ└
  45.  
  46. é╞ïKæÑé╠ïµò╩é¬é┬é⌐é╚é¡é╚éΘé╠é┼üA(head) é╠é▌é╠ïKæÑé≡ÄûÄ└é╞é╖éΘé▒é╞é╔é╡é▄
  47.  
  48. é╡éσéñüBé┬é▄éΦüA
  49.  
  50.  
  51.         ((ÅqîΩ ê°Éö ... ê°Éö))
  52.  
  53.  
  54. é┼ÄûÄ└é≡ò\é╡üAăé╠
  55.  
  56.  
  57.         ((ÅqîΩ ê°Éö ... ê°Éö) (ÅqîΩ ê°Éö ... ê°Éö) ... )
  58.  
  59.  
  60. é¬ïKæÑé≡ò\é╖é▒é╞é╔é╡é▄é╖üB
  61.  
  62.   ÄûÄ└é╞ïKæÑé═è╚ÆPé╔ĵéΦÅoé╣éΘéµéñé╔üAô¬òöé╠ÅqîΩé╠æ«É½âèâXâgé╔èiö[é╖éΘé▒
  63.  
  64. é╞é╔é╡é▄é╖üBæ«É½û╝é═ RULE é╞é╡é▄é╖üB
  65.  
  66.  
  67. ü¢ò╧Éöé╠è╟ù¥ò√û@
  68.  
  69.   Äƒé╔üAò╧Éöé╔é┬éóé─Å┌é╡é¡îƒôóé╡é─é▌é▄é╖üBé▒é▒é┼Æìê╙é╡é─éαéτéóé╜éóé╠é¬ò╧
  70.  
  71. Éöé╠ùLî°ö═ê═é┼é╖üBProlog é╠ÅΩìçüAò╧Éöé═ô»é╢É▀ôαé┼é╠é▌ùLî°é┼é╖üBé┬é▄éΦüA
  72.  
  73. ï╟Åèò╧Éöé╞é╡é─ê╡éφéΩéΘé╠é┼é╖üBé▒é╠é╜é▀üAProlog é┼é═ì─ïAî─é╤Åoé╡éαë┬ö\é┼
  74.  
  75. é╖üBé╜é╞éªé╬üAɵé┘é╟é╠Ä┐ûΓ ?-ö≥é╘(Y). é╠ò╧Éöé≡ X é╔ò╧éªé─é▌é▄é╖üB
  76.  
  77.  
  78.         ?-ö≥é╘(X).
  79.           äá
  80.           äá   head é╞â}âbâ`âôâOé╖éΘÉ▀é≡ÆTì⌡é╖éΘ
  81.           ü½
  82.         ö≥é╘(X) :- ö≥ìsï@(X).      ò╧Éö X é═é▒é╠É▀ôαé┼é╠é▌ùLî°
  83.  
  84.                É} 15 : Prolog é╠ò╧Éöé═ùLî°ö═ê═é¬É▀é╠Æåé╛é»
  85.  
  86.  
  87. ïKæÑ ö≥é╘(X) :- ö≥ìsï@(X). é╠ò╧Éö X é═ô»é╢ò╧Éöé┼é╖é¬üAé▒é╠ò╧Éöé╞Ä┐ûΓ ?-
  88.  
  89. ö≥é╘(X). é╠ X é═üAû╝æOé¬ô»é╢é┼é╖é¬ò╩é╠ò╧Éöé╞é╡é─ê╡éñé╠é┼é╖üBé╡é╜é¬é┴é─üA
  90.  
  91. ɵé┘é╟é╞ô»é╢éµéñé╔ôÜéªé≡ïüé▀éΘé▒é╞é¬é┼é½é▄é╖üBé▒é╠éµéñé╔üAProlog é┼ìséφ
  92.  
  93. éΩéΘâpâ^ü[âôâ}âbâ`âôâOé═üAô»é╢û╝æOé┼éáé┴é─éαò╩é╠ò╧Éöé╞é╡é─ê╡éñé╜é▀üAî╡ûº
  94.  
  95. é╚ê╙ûíé┼é╠âåâjâtâBâPü[âVâçâôé≡òKùvé╞é╡é▄é╣é±üBè╓Éö unify é┼é═üAô»êΩò╧Éö
  96.  
  97. é╠â`âFâbâNé≡ insidep é┼ìséóé▄é╡é╜é¬üAé▒é╠Åêù¥é═òsùvé╔é╚éΦé▄é╖üB
  98.  
  99.   é╞é▒éδé¬üAéóéóé▒é╞é╛é»é┼é═éáéΦé▄é╣é±üBìíôxé═ò╧Éöé╠è╟ù¥ò√û@é¬ûΓæΦé╔é╚éΘ
  100.  
  101. é╠é┼é╖üBâXâyâVâââïò╧Éöé≡Ägé┴é╜ò╧Éöé╠è╟ù¥ò√û@é═üAô»é╢âVâôâ{âïé≡ê┘é╚éΘò╧Éö
  102.  
  103. é╞é╡é─ê╡éñé╠é╔é═ôKé╡é─éóé▄é╣é±üBé╞éóé┴é─üAéóé▄é│éτâåâjâtâBâPü[âVâçâôé≡ò╧
  104.  
  105. ìXé╖éΘé╠é═û╩ô|é┼é╖é╦üBÄ└é═è╚ÆPé╚ò√û@é¬éáéΘé╠é┼é╖üBé╗éΩé═üAÉ▀é╔éµé┴é─ê┘é╚
  106.  
  107. éΘâVâôâ{âïé≡Ägùpé╡üAò╧Éöû╝é¬Ådé╚éτé╚éóéµéñé╔é╖éΘé▒é╞é┼é╖üBé▒é╠Åêù¥é≡ÄäÆB
  108.  
  109. é¬ìséñé╠é┼é═üAé▒éΩé▄é╜û╩ô|é┼é╖é╦üBé╗é▒é┼üAÉ▀é≡æ«É½âèâXâgé╔ôoÿ^é╖éΘÄ₧üAò╧
  110.  
  111. Éöé≡ÉVé╡éóâVâôâ{âïé╔Æuè╖é╖éΘé▒é╞é╔é╡é▄é╖üB
  112.  
  113.   Lisp é╔é═üAânâbâVâàò\(oblist)é╔ôoÿ^é╡é╚éóé╚éóâVâôâ{âïé≡É╢ɼé╖éΘè╓Éö
  114.  
  115. gensym é¬éáéΦé▄é╖üB
  116.  
  117.  
  118.         gensym
  119.  
  120.  
  121. âVâôâ{âïé≡è╟ù¥é╖éΘânâbâVâàò\ oblist é╔ôoÿ^é╣é╕é╔üAâVâôâ{âïé≡ÉVé╡é¡ì∞ɼé╡
  122.  
  123. é▄é╖üBê≤ÄÜû╝é═ÉVé╡é¡ì∞ɼé│éΩüA'G' é╞é╗é╠éáé╞é╔ 4âPâ^é╠ 10 ÉiÉöé╠ÉöÄÜé¬æ▒
  124.  
  125. é½é▄é╖üB
  126.  
  127.  
  128.  Lisp > (setq a (gensym))
  129.  #:G0000
  130.  
  131.  Lisp (eq 'G0000 a)
  132.  nil
  133.  
  134.  
  135. #: é═ oblist é╔ôoÿ^é│éΩé─éóé╚éóé▒é╞é≡Īé╡é▄é╖üBG0000 é═ oblist é╔ôoÿ^é│
  136.  
  137. éΩé▄é╖é¬üA#:G0000 é═ oblist é╔é═ôoÿ^é│éΩé╚éóé╠é┼üAéQé┬é╠âVâôâ{âïé═ê┘é╚éΦ
  138.  
  139. é▄é╖üBeq é┼öΣèré╡é─éα nil é╞é╚éΦé▄é╖üB
  140.  
  141.   é▒é╠éµéñé╔üAoblist é╔ôoÿ^é│éΩé─éóé╚éóâVâôâ{âïé═üAé╗éΩê╚æOé╠érÄ«é┼Ägéφ
  142.  
  143. éΩé─éóéΘâVâôâ{âïé╞ê┘é╚éΘéφé»é┼é╖é⌐éτüAÉ▀ôαé╠ò╧Éöé≡é▒é╠âVâôâ{âïé┼Æué½è╖éª
  144.  
  145. éΩé╬üAæ╝é╠É▀é┼Ägéñò╧Éöé╞Å╒ô╦é╖éΘé▒é╞é═é╚é¡é╚éΦé▄é╖üBé▄é╜üAâVâôâ{âïû╝é═ëp
  146.  
  147. æσò╢ÄÜé┼Äné▄é┴é─éóéΘé╠é┼üAò╧Éöû╝é╠Å≡îÅé≡û₧é╜é╡é─éóéΘé╠éαôsìçé¬éµéóé┼é╖é╦üB
  148.  
  149.  
  150.   é╞é▒éδé¬üAÉ▀é╠ò╧Éöé≡ò╧éªéΘé╛é»é┼é═òsÅ\ò¬é╚é╠é┼é╖üBé╞éóéñé╠éαüAì─ïAî─é╤
  151.  
  152. Åoé╡é¬ìséφéΩéΘé╞üAô»é╢É▀é≡î─é╤Åoé╖éφé»é┼é╖é⌐éτüAé╗é▒é┼ò╧Éöé╠Å╒ô╦é¬ö¡É╢é╖
  153.  
  154. éΘÅΩìçé¬éáéΘé⌐éτé┼é╖üBé▒éΩé≡ë±ö≡é╖éΘé╜é▀üAâåâjâtâBâPü[âVâçâôé≡ìséñé╞é▒éδ
  155.  
  156. é┼üAÉ▀é╠ò╧Éöé≡Æué½è╖éªéΘé▒é╞é╔é╡é▄é╖üBé▒é╠ò√û@é╛é╞üAì─ïAî─é╤Åoé╡é¬ìséφéΩ
  157.  
  158. éΘôxé╔ÉVé╡éóò╧Éöé╔Æué½ò╧éφéΘé╠é┼üAéñé▄é¡ô«ì∞é╡é▄é╖üBîçô_é╞é╡é─üAâåâjâtâB
  159.  
  160. âPü[âVâçâôé≡ìséñôxé╔ò╧Éöé≡Æuè╖é╖éΘé╠é┼üAÄ└ìsæ¼ôxé¬Æxé¡é╚éΘé▒é╞é┼é╖üBé▄éáüA
  161.  
  162. Lisp âCâôâ^âvâèâ^é┼ô«é⌐é╖é╠é┼é╖é⌐éτüAéαé╞éαé╞Ä└ìsæ¼ôxé═è·æ╥é╡é─éóé▄é╣é±üB
  163.  
  164. è╚ÆPé╔ì∞éΩéΘò√û@é≡æIé╤é▄é╡éσéñüB
  165.  
  166.  
  167.   ò╧Éöé≡Æué½è╖éªéΘì∞ï╞é═üAé╗éΩé┘é╟ô∩é╡éóé▒é╞é┼é═éáéΦé▄é╣é±üBLisp é╔é═üA
  168.  
  169. âèâXâgé╠ùvæfé≡Æué½è╖éªéΘè╓Éöé¬ùpê╙é│éΩé─éóé▄é╖üB
  170.  
  171.  
  172.         subst        new old  tree
  173.  
  174.         subst-if     new test tree
  175.  
  176.         subst-if-not new test tree
  177.  
  178.  
  179.   subst é═âèâXâg tree é╠ old é╔ôÖé╡éó(equal) òöò¬é≡üAnew é╔Æué½è╖éªé╜ÉV
  180.  
  181. é╡éóâèâXâgé≡ò╘é╡é▄é╖üBsubst é═âèâXâgé╠ì\æóé≡ì─ïAôIé╔é╜é╟éΦüAé╖é╫é─é╠ùvæf
  182.  
  183. é≡îƒì╕é╡é▄é╖üBî│é╠âèâXâgé═öjë≤é│éΩé▄é╣é±üBsubst-if é═ÅqîΩ test é≡û₧é╜é╖
  184.  
  185. ùvæfé≡ new é╔Æué½è╖éªüAsubst-if-not é═ÅqîΩ test é≡û₧é╜é│é╚éóùvæfé≡ new
  186.  
  187. é╔Æué½è╖éªé▄é╖üBè╚ÆPé╚Ägùpùßé≡Īé╡é▄é╡éσéñüB
  188.  
  189.  
  190.  Lisp > (subst 'A 'a '(a b c (a b c (a b c . a))))
  191.  (A b c (A b c (A b c . A)))
  192.  
  193.  
  194. é╞é▒éδé┼üAÉ▀ôαé┼Ägùpé╖éΘò╧Éöé═êΩé┬é╞é═î└éΦé▄é╣é±üBòíÉöé╠ùvæfé≡êΩôxé╔Æué½
  195.  
  196. è╖éªéΘè╓Éö鬠sublis é┼é╖üB
  197.  
  198.  
  199.         sublis a-list tree
  200.  
  201.  
  202.   ÿAæzâèâXâg a-list é╠âLü[é╔ôÖé╡éó tree é╠òöò¬é≡üAâfü[â^é╔Æué½è╖éªé▄é╖üB
  203.  
  204. sublis é═ subst é≡òíÉöë±Ä└ìsé╡é╜ÅΩìçé╞ô»é╢î°ë╩é¬ô╛éτéΩé▄é╖üBtree é═öjë≤
  205.  
  206. é│éΩé▄é╣é±üBè╚ÆPé╚Ägùpùßé≡Īé╡é▄é╡éσéñüB
  207.  
  208.  
  209.  Lisp > (sublis '((a . 1) (b . 2)) '(a b c (a b c . a) d . b))
  210.  (1 2 c (1 2 c . 1) d . 2)
  211.  
  212.  
  213.   ò╧Éöé╠Æué½è╖éªé═ sublis é≡Ägéñé╞è╚ÆPé┼é╖üBé▄é╕üAÉ▀ôαé┼ÄgéφéΩé─éóéΘò╧Éö
  214.  
  215. é≡ÅWé▀é▄é╖üBé▒é╠è╓Éöé≡ collect-variable é╞é╡é▄é╡éσéñüB
  216.  
  217.  
  218.  Lisp > (collect-variable '((foo X Y) (bar1 X) (bar2 Y)))
  219.  (X Y)
  220.  
  221.  
  222. ăé╔üAé▒é╠ò╧Éöé╞ gensym é┼É╢ɼé╖éΘâVâôâ{âïé╠ÿAæzâèâXâgé≡ì∞éΦé▄é╖üBé▒éΩé═
  223.  
  224. mapcar é≡Ägéªé╬è╚ÆPé┼é╖üB
  225.  
  226.  
  227.  Lisp > (mapcar #'(lambda (x) (cons x (gensym))) '(X Y))
  228.  ((X . #:G0000) (Y . #:G0001))
  229.  
  230.  
  231. îπé═üAé▒é╠ÿAæzâèâXâgé╞É▀é≡ sublis é╔ôné╣é╬éóéóé╠é┼é╖üB
  232.  
  233.  
  234.  Lisp > (sublis '((X . #:G0000) (Y . #:G0001))
  235.                 '((foo X Y) (bar1 X) (bar2 Y)))
  236.  ((foo #:G0000 #:G0001) (bar1 #:G0000) (bar2 #:G0001))
  237.  
  238.  
  239. è╚ÆPé┼é╖é╦üBÄ└ì█é╠âvâìâOâëâÇé═É▀é≡ÆΦï`é╖éΘé╞é▒éδé┼ì∞éΦé▄é╖üB
  240.  
  241.  
  242. ü¢âoâbâNâgâëâbâNé╠è╟ù¥
  243.  
  244.   ìíôxé═âGâLâXâpü[âgâVâXâeâÇé╠ô«ì∞é╔é┬éóé─ìléªé─é▌é▄é╖üBProlog é╠ÅΩìçüA
  245.  
  246. ô«ì∞é═ Box âéâfâïé╞éóéñî`Ä«é┼ò\é╖é▒é╞é¬é┼é½é▄é╖üB
  247.  
  248.  
  249.                  Call ü¿äíäƒäƒäƒäƒäƒäƒäƒäóü¿ Exit
  250.                         äá              äá
  251.                         äá  Ä└ìsÆåé╠É▀  äá
  252.                         äá              äá
  253.                  Fail ü⌐äñäƒäƒäƒäƒäƒäƒäƒäúü⌐ Redo
  254.  
  255.                           Call : ïNô«
  256.                           Exit : Ä╕ös
  257.                           Redo : ì─ÄÄìs
  258.                           Fail : Ä╕ös
  259.  
  260.                            É} 16 : Box âéâfâï
  261.  
  262.  
  263. Box âéâfâïé═üAÄ└ìsÆåé╠É▀é≡â{âbâNâXé╞é╡üAé╗é╠Å≤æ╘é≡ Call, Redo, Exit, Fail
  264.  
  265. é┼ò\é╡é▄é╖üBÉ▀é¬Åëé▀é─Ä└ìsé│éΩéΘé▒é╞é≡ Call é╞éóéóé▄é╖üBé▒é╠Ä₧é╔â{âbâNâX
  266.  
  267. é¬ì∞éτéΩé▄é╖üBɼî≈é╡é╜ÅΩìçé≡ Exit é╞éóéóüAì─ÄÄìsé╡é╜ÅΩìçé≡ Redo é╞éóéóé▄
  268.  
  269. é╖üBÄ╕ösé╡é╜ÅΩìçé≡ Fail é╞éóéóüAé▒é╠Ä₧â{âbâNâXé¬öjë≤é│éΩé▄é╖üBé▒é╠â{âbâN
  270.  
  271. âXé╔òKùvé╚Åεò±é≡ò█æ╢é╡é─é¿é¡é▒é╞é┼üAâoâbâNâgâëâbâNé¬ë┬ö\é╔é╚éΦé▄é╖üB
  272.  
  273.  
  274.   é╗éΩé┼é═üAé▒é╠â{âbâNâXé╔æ╬ë₧é╖éΘâNâëâXé≡ì∞éΦé▄é╡éσéñüBâNâëâXû╝é═üAÄ└ìs
  275.  
  276. è┬ï½é≡èiö[é╖éΘé▒é╞é⌐éτ Env é╞é╡é▄é╡é╜üB
  277.  
  278.  
  279.      List 33 : Ä└ìsè┬ï½é╠ÆΦï`
  280.  
  281.    1 (defclass Env ()
  282.    2   (goal                 ; âSü[âïÉ▀
  283.    3    rule-list            ; ÅqîΩé╔ÆΦï`é│éΩé─éóéΘÉ▀
  284.    4    exec-rule            ; Ä└ìsÆåé╠É▀
  285.    5    exec-env             ; ì∞ɼé╡é╜è┬ï½üiâXâ^âbâNé╔é╚éΘüj
  286.    6    binding))            ; æ⌐ö¢é╡é╜ò╧Éö
  287.  
  288.  
  289.   goal é═Ä└ìsé╖éΘÉ▀é¬ôⁿéΦé▄é╖üBé▒éΩé╞â}âbâ`âôâOé╖éΘÉ▀é≡ rule-list é⌐éτÆT
  290.  
  291. é╡é▄é╖üBrule-list é═ Env âCâôâXâ^âôâXé≡ì∞ɼé╖éΘÄ₧é╔üAÅqîΩé╠æ«É½âèâXâgé⌐
  292.  
  293. éτÉ▀é≡ĵéΦÅoé╡é─âZâbâgé╡é▄é╖üBexec-rule é═üAî╗ì▌Ä└ìsÆåé╠É▀é≡âZâbâgé╡é▄é╖üB
  294.  
  295. rule-list é┼â}âbâ`âôâOé╡é╜É▀é═üAé╗é▒é⌐éτĵéΦÅoé╡é─ exec-ruleé╔âZâbâgé╡é▄
  296.  
  297. é╖üBé▒éΩé┼üAâoâbâNâgâëâbâNé╡é╜ÅΩìçé┼éαüAô»é╢É▀é¬ì─é╤ÄgéφéΩéΘé▒é╞é═éáéΦé▄
  298.  
  299. é╣é±üB
  300.  
  301.   exec-env é═üAïKæÑé╠æ╠òöé≡Ä└ìsé╖éΘé╜é▀é╔ì∞ɼé╡é╜è┬ï½ Env é╠âCâôâXâ^âôâX
  302.  
  303. é≡âèâXâgé╔èiö[é╡é▄é╖üBé╡é╜é¬é┴é─üAè┬ï½ Env é╠âCâôâXâ^âôâXé═üuû╪ì\æóüvé╔
  304.  
  305. é╚éΘéφé»é┼é╖üBé┬é▄éΦüAâGâLâXâpü[âgâVâXâeâÇé¬ô«ì∞é╖éΘé▒é╞é╔éµéΦüAEnv âCâô
  306.  
  307. âXâ^âôâXé╠û╪ì\æóé¬É╢ɼé│éΩüAì─ÄÄìsé╠Ä₧é╔é═üAì∞éτéΩé╜û╪ì\æóé≡é╜é╟éΘé▒é╞é┼
  308.  
  309. ô«ì∞é╖éΘéφé»é┼é╖üBexec-env é═âXâ^âbâNé╞é╡é─ô«ì∞é│é╣éΘé╠é┼üAè┬ï½é═Ä└ìsé╡
  310.  
  311. é╜Åçö╘é╞é═ïté╔èiö[é│éΩé─éóé½é▄é╖üBé╡é╜é¬é┴é─üAì─ÄÄìsé╠Ä₧é╔é═ exec-env é╠
  312.  
  313. æµ 1 ùvæfé¬üAé╗é╠É▀é┼ì┼îπé╔Ä└ìsé│éΩé╜è┬ï½é╞é╚éΦé▄é╖üB
  314.  
  315.   binding é╔é═æ⌐ö¢é╡é╜ò╧Éöé≡èiö[é╡é▄é╖üBì─ÄÄìsé╠Ä₧é╔üAò╧Éöæ⌐ö¢é≡âNâèâAé╖
  316.  
  317. éΘé╜é▀é╔Ägéóé▄é╖üB
  318.  
  319.   Ä└ì█é╔é╟é╠éµéñé╚ô«ì∞é╔é╚éΘé⌐üAăé╠ÄûÄ└é╞ïKæÑé≡Ägé┴é─Éαû╛é╡é▄é╡éσéñüB
  320.  
  321.  
  322.    ÄûÄ└éPüF((foo a)), ((foo b))
  323.  
  324.    ÄûÄ└éQüF((bar a)), ((bar b))
  325.  
  326.    ïKæÑ  üF((foo1 X Y) (foo X) (bar Y))
  327.  
  328.  
  329. é▄é╕üAÄ┐ûΓé╞é╡é─ (foo1 A B) é¬ù^éªéτéΩéΘé╞üAé╗éΩé≡ë≡é¡é╜é▀é╔ Env0 é¬ì∞ɼ
  330.  
  331. é│éΩé▄é╖üB
  332.  
  333.  
  334.   Env0
  335.   goal      : (foo1 A B)
  336.   rule-list : ( ((foo1 X Y) (foo X) (bar Y)) )
  337.   exec-rule : nil
  338.   exec-env  : nil
  339.   binding   : nil
  340.  
  341.  
  342.   goal é╔é═Ä┐ûΓ (foo1 A B) é¬âZâbâgé│éΩüAfoo1 é╠æ«É½âèâXâgé⌐éτæ«É½ RULE
  343.  
  344. é╔èiö[é│éΩé─éóéΘÉ▀é¬âZâbâgé│éΩé▄é╖üBăé╔üAgoal é╞â}âbâ`âôâOé╖éΘÉ▀é≡ rule
  345.  
  346. -list é╠Æåé⌐éτÆTé╡é▄é╖üBé▒é╠ÅΩìçüAÉ▀é═êΩé┬é╡é⌐é╚éóé┼é╖é¬üAé╗éΩé¬â}âbâ`âô
  347.  
  348. âOé╡é▄é╖üBEnv0 é═ăé╠éµéñé╔é╚éΦé▄é╖üB
  349.  
  350.  
  351.   Env0
  352.   goal      : (foo1 A B)
  353.   rule-list : nil
  354.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  355.   exec-env  : nil
  356.   binding   : (A B)          ; A = X, B = Y
  357.  
  358.  
  359.   â}âbâ`âôâOé╡é╜É▀é═ exec-rule é╔âZâbâgé│éΩüArule-list é⌐éτìφÅ£é│éΩé▄é╖üB
  360.  
  361. é╗é╡é─üAæ⌐ö¢é╡é╜ò╧Éö A é╞ B é≡ binding é╔âZâbâgé╡é▄é╖üBé▒é▒é┼üAò╧Éö A é╞
  362.  
  363. X, B é╞ Y é╠âèâôâPü[âWé¬âZâbâgé│éΩé▄é╖üB
  364.  
  365.  
  366.   Äƒé╔üAïKæÑé╠æ╠òöé≡Ä└ìsé╡é▄é╖üBé▄é╕üA(foo x) é≡Ä└ìsé╖éΘé╜é▀ÉVé╡éóè┬ï½
  367.  
  368. Env1 é≡ì∞éΦ exec-env é╔âZâbâgé╡é▄é╖üB
  369.  
  370.   Env0
  371.   goal      : (foo1 A B)
  372.   rule-list : nil
  373.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  374.   exec-env  : (Env1)
  375.   binding   : (A B)          ; A = X, B = Y
  376.  
  377.   Env1
  378.   goal      : (foo X)                       : (foo X)
  379.   rule-list : ( ((foo a)) ((foo b)) )       : ( ((foo b) )
  380.   exec-rule : nil                       =>  : ((foo a))
  381.   exec-env  : nil                           : nil
  382.   binding   : nil                           : (X)     ; X = a
  383.  
  384.  
  385. Env1 é═ (foo X) é¬ goal é╚é╠é┼üAÅqîΩ foo é⌐éτÉ▀é≡ĵéΦÅoé╡é─ rule-list é╔
  386.  
  387. âZâbâgé╡é▄é╖üBîπé═üAé▒é╠Æåé⌐éτ goal é╞â}âbâ`âôâOé╖éΘÉ▀é≡ÆTé╡é▄é╖üBé╗é╠îï
  388.  
  389. ë╩üA((foo a)) é¬ exec-rule é╔âZâbâgé│éΩüAX é═ a é╔æ⌐ö¢é│éΩé▄é╖üBé▒é╠ÅΩìçüA
  390.  
  391. æ╠òöé¬é╚éóé╠é┼ (foo X) é═â}âbâ`âôâOɼî≈é╞é╚éΦé▄é╖üB
  392.  
  393.   Env1 é¬É¼î≈é╡é╜é╠é┼ Env0 é╔û▀éΦüAăé╠ (bar Y) é≡Ä└ìsé╡é▄é╖üBé▒é▒é┼éαè┬
  394.  
  395. ï½ Env2 é≡ì∞éΦ exec-env é╔Æ╟ë┴é╡é▄é╖üB
  396.  
  397.  
  398.   Env0
  399.   goal      : (foo1 A B)
  400.   rule-list : nil
  401.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  402.   exec-env  : (Env2 Env1)
  403.   binding   : (A B)          ; A = X, B = Y
  404.  
  405.   Env2
  406.   goal      : (bar Y)                    : (bar Y)
  407.   rule-list : ( ((bar a)) ((bar b)) )    : ( ((bar b)) )
  408.   exec-rule : nil                     => : ((bar a))
  409.   exec-env  : nil                        : nil
  410.   binding   : nil                        : (Y)        ; Y = a
  411.  
  412.  
  413. Env2 é╠ô«ì∞é═ Env1 é╞ô»é╢é┼é╖üBé╗é╠îïë╩üA(bar Y) é╠â}âbâ`âôâOé═ɼî≈é╡üAY
  414.  
  415. é═ a é╔æ⌐ö¢é│éΩé▄é╖üBé╗é╠îπ Env0 é╔û▀éΦé▄é╖é¬üAé▒é╠îπé╔Ä└ìsé╖éΘæ╠òöé═éá
  416.  
  417. éΦé▄é╣é±é╠é┼üAé▒é╠ïKæÑé═â}âbâ`âôâOɼî≈é╞é╚éΦé▄é╖üBé╡é╜é¬é┴é─üA
  418.  
  419.  
  420.   A = a
  421.   B = a ->
  422.  
  423.  
  424. é╞éóéñîïë╩é¬ô╛éτéΩé▄é╖üBé▒éΩé≡ Box é┼ò\é╖é╞ăé╠éµéñé╔é╚éΦé▄é╖üB
  425.  
  426.  
  427.                  Env0
  428.          Call ü¿äíäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäóü¿ Exit
  429.                 äá(foo1 X Y) (foo X) (bar Y)äá
  430.                 äñäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäú
  431.                 äáCall                      ü¬ Exit
  432.             Env1ü½                      Env2äá
  433.             äíäƒäƒäƒäƒäóü¿ Exit  Call ü¿äíäƒäƒäƒäƒäó
  434.             äá(foo a) äá                äá(bar a) äá
  435.             äñäƒäƒäƒäƒäú                äñäƒäƒäƒäƒäú
  436.  
  437.                      É} 17 : (foo1 X Y)é╠Ä└ìsüiéPüj
  438.  
  439.  
  440.   âvâìâOâëâÇé╠Ä└ìsé¬Éié▐é╔é┬éΩüAâ{âbâNâXé¬É╢ɼé│éΩé─éóé¡é▒é╞é¬éφé⌐éΘé╞Äv
  441.  
  442. éóé▄é╖üB
  443.  
  444.   Äƒé╔üAì─ÄÄìsé╖éΘùlÄqé≡î⌐é─é▌é▄é╡éσéñüBé▄é╕ exec-env é≡é╜é╟éΦüAì┼îπé╔Ä└
  445.  
  446. ìsé╡é╜è┬ï½é╔ê┌ô«é╡é▄é╖üB
  447.  
  448.  
  449.   Env0
  450.   goal      : (foo1 A B)
  451.   rule-list : nil
  452.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  453.   exec-env  : (Env2 Env1)
  454.   binding   : (A B)          ; A = X, B = Y
  455.  
  456.  
  457. Env0 é╠ exec-env é⌐éτ Env2 é╓ê┌ô«é╡é▄é╖üBexec-env é═âXâ^âbâNé╞ô»é╢ô«ì∞é╚
  458.  
  459. é╠é┼üAɵô¬é╔éáéΘè┬ï½é¬ì┼îπé╔Ä└ìsé╡é╜è┬ï½é╞é╚éΦé▄é╖üB
  460.  
  461.  
  462.   Env2
  463.   goal      : (bar Y)
  464.   rule-list : ( ((bar b)) )       : nil
  465.   exec-rule : ((bar a))        => : ((bar b))
  466.   exec-env  : nil                 : nil
  467.   binding   : (Y)                 : (Y)      ; Y = b
  468.  
  469.  
  470. Env2 é╠ exec-env é═ nil é╚é╠é┼üAé▒éΩê╚Åπé╜é╟éΘé╫é½è┬ï½é═éáéΦé▄é╣é±üBé╗é▒
  471.  
  472. é┼üAò╧Éöæ⌐ö¢é≡âNâèâAé╡é─üAgoal é╞â}âbâ`âôâOé╖éΘÉ▀é≡ rule-list é⌐éτÆTé╡é▄
  473.  
  474. é╖üBé╖éΘé╞üA((bar b)) é╞â}âbâ`âôâOé¬É¼î≈é╡üAY é═ b é╔æ⌐ö¢é│éΩé▄é╖üB
  475.  
  476.   Env2 é¬â}âbâ`âôâOɼî≈é╡é╜é╠é┼ Env0 é╔û▀éΦüAé▒é╠îïë╩ Env0 éαâ}âbâ`âôâO
  477.  
  478. ɼî≈é╞é╚éΦé▄é╖üBé╗é╠îïë╩üA
  479.  
  480.  
  481.   A = a
  482.   B = b ->
  483.  
  484.  
  485. é╞ò\Īé│éΩé▄é╖üBé▒éΩé≡ Box âéâfâïé┼ò\é╖é╞üAăé╠éµéñé╔é╚éΦé▄é╖üB
  486.  
  487.  
  488.                  Env0
  489.                 äíäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäóü¿ Exit
  490.                 äá(foo1 X Y) (foo X) (bar Y)äá
  491.                 äñäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäúü⌐ Redo
  492.                                     Exitü¬  äá
  493.             Env1                    Env2äá  ü½Redo
  494.             äíäƒäƒäƒäƒäó                äíäƒäƒäƒäƒäó
  495.             äá(foo a) äá                äá(bar b) äá
  496.             äñäƒäƒäƒäƒäú                äñäƒäƒäƒäƒäú
  497.                                           ò╩ë≡ÆTì⌡
  498.  
  499.                      É} 18 : (foo1 X Y)é╠Ä└ìsüiéQüj
  500.  
  501.  
  502.   é▒é╠ÅΩìçé═ Env2 é┼ò╩ë≡é≡î⌐é┬é»éΘé▒é╞é¬é┼é½é▄é╡é╜üBé╗éΩé┼é═üAéαéñêΩôxì─
  503.  
  504. ÄÄìsé╡é▄é╖üBé▒é╠ÅΩìçéαɵé┘é╟é╞ô»ùlé╔üAEnv0 é⌐éτì─ÄÄìsé╡é▄é╖üB
  505.  
  506.  
  507.   Env0
  508.   goal      : (foo1 A B)
  509.   rule-list : nil
  510.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  511.   exec-env  : (Env2 Env1)
  512.   binding   : (A B)          ; A = X, B = Y
  513.  
  514.   Env2
  515.   goal      : (bar Y)
  516.   rule-list : nil
  517.   exec-rule : ((bar b))   => Ä╕ösüI
  518.   exec-env  : nil
  519.   binding   : (Y)
  520.  
  521.  
  522. Env2 é╠ exec-env é═ nil é╚é╠é┼üAé▒éΩê╚Åπé╜é╟éΘé╫é½è┬ï½é═éáéΦé▄é╣é±üBé╗é▒
  523.  
  524. é┼üAò╧Éöæ⌐ö¢é≡âNâèâAé╡é─üAgoal é╞â}âbâ`âôâOé╖éΘÉ▀é≡ rule-list é⌐éτÆTé╡é▄
  525.  
  526. é╖üBé╞é▒éδé¬üArule-list  é═ï≤âèâXâg nil é╚é╠é┼ÆTì⌡é╖éΘÉ▀é═éáéΦé▄é╣é±üB
  527.  
  528. Env2 é═Ä╕ösé╡é▄é╖üBé╗é▒é┼ Env0 é╔û▀éΦé▄é╖üB
  529.  
  530.  
  531.   Env0
  532.   goal      : (foo1 A B)
  533.   rule-list : nil
  534.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  535.   exec-env  : (Env1)
  536.   binding   : (A B)          ; A = X, B = Y
  537.  
  538.  
  539. Env0 é┼é═ exex-env é⌐éτÄ╕ösé╡é╜ Env2 é≡ìφÅ£é╡üAÄcé┴é─éóéΘè┬ï½ Env1 é╔ê┌
  540.  
  541. ô«é╡é▄é╖üBé▒éΩé≡ Box âéâfâïé┼ò\é╖é╞üAăé╠éµéñé╔é╚éΦé▄é╖üB
  542.  
  543.  
  544.                  Env0
  545.                 äíäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäóü¿ Exit
  546.                 äá(foo1 X Y) (foo X) (bar Y)äá
  547.                 äñäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäúü⌐ Redo
  548.                                            äá
  549.             Env1                    Env2   ü½Redo
  550.             äíäƒäƒäƒäƒäó                äíäƒäƒäƒäƒäó
  551.             äá(foo a) äá                äá(bar Y) äá
  552.             äñäƒäƒäƒäƒäúü⌐ Redo  Fail ü⌐äñäƒäƒäƒäƒäú
  553.                                     ò╩ë≡û│é╡ => Box é═Å┴û┼
  554.  
  555.                    É} 19 : (foo1 X Y)é╠Ä└ìsüiéRüEéPüj
  556.  
  557.  
  558. Ä╕ösé╡é╜ Box é═Å┴û┼é╡é─âoâbâNâgâëâbâNé╖éΘéφé»é┼é╖üBé┼é═üAæ▒é½é╠ùlÄqé≡î⌐
  559.  
  560. é─é▌é▄é╖üB
  561.  
  562.  
  563.   Env0
  564.   goal      : (foo1 A B)
  565.   rule-list : nil
  566.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  567.   exec-env  : (Env1)
  568.   binding   : (A B)          ; A = X, B = Y
  569.  
  570.   Env1
  571.   goal      : (foo X)          : (foo X)
  572.   rule-list : ( ((foo b)) )    : nil
  573.   exec-rule : ((foo a))     => : ((foo b))
  574.   exec-env  : nil              : nil
  575.   binding   : (X)              : (X)        ; X = b
  576.  
  577.  
  578. Env1 é╠ exec-env é═ nil é╚é╠é┼üAé▒éΩê╚Åπé╜é╟éΘé╫é½è┬ï½é═éáéΦé▄é╣é±üBé╗é▒
  579.  
  580. é┼üAò╧Éöæ⌐ö¢é≡âNâèâAé╡é─üAgoal é╞â}âbâ`âôâOé╖éΘÉ▀é≡ rule-list é⌐éτÆTé╡é▄
  581.  
  582. é╖üBé╖éΘé╞üA((foo b)) é╞â}âbâ`âôâOé¬É¼î≈é╡üAX é═ b é╔æ⌐ö¢é│éΩé▄é╖üB
  583.  
  584.   Env1 é¬â}âbâ`âôâOɼî≈é╡é╜é╠é┼ Env0 é╔û▀éΦüAăé╠æ╠òö (bar Y) é≡Ä└ìsé╡é▄
  585.  
  586. é╖üBé▒é╠ÅΩìçüAè┬ï½ Env2 é≡ÉVé╡é¡ì∞éΘé▒é╞é╔Æìê╙é╡é─é¡é╛é│éóüB
  587.  
  588.  
  589.   Env0
  590.   goal      : (foo1 A B)
  591.   rule-list : nil
  592.   exec-rule : ((foo1 X Y) (foo X) (bar Y))
  593.   exec-env  : (Env2 Env1)
  594.   binding   : (A B)          ; A = X, B = Y
  595.  
  596.   Env2
  597.   goal      : (bar Y)                    : (bar Y)
  598.   rule-list : ( ((bar a)) ((bar b)) )    : ( ((bar b)) )
  599.   exec-rule : nil                     => : ((bar a))
  600.   exec-env  : nil                        : nil
  601.   binding   : nil                        : (Y)       ; Y = a
  602.  
  603.  
  604. Env2 é═ÉVé╡é¡ì∞éτéΩéΘè┬ï½é╚é╠é┼üArule-list é╔é═ÅqîΩ foo é╠æ«É½âèâXâgé⌐éτ
  605.  
  606. É▀é¬âZâbâgé│éΩé▄é╖üBê╚æOÄ└ìsé╡é╜è┬ï½é╞é═êßéñé▒é╞é╔Æìê╙é╡é─é¡é╛é│éóüBè┬ï½
  607.  
  608. é═êßéóé▄é╖é¬üAô«ì∞é═ô»é╢é┼é╖üBBox âéâfâïé≡î⌐é─é¡é╛é│éóüB
  609.  
  610.  
  611.                  Env0
  612.                 äíäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäóü¿ Exit
  613.                 äá(foo1 X Y) (foo X) (bar Y)äá
  614.                 äñäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäú
  615.                                            ü¬
  616.             Env1                      Env2 äá Exit
  617.             äíäƒäƒäƒäƒäóü¿ Exit  Call ü¿äíäƒäƒäƒäƒäó
  618.             äá(foo b) äá                äá(bar a) äá
  619.             äñäƒäƒäƒäƒäú                äñäƒäƒäƒäƒäú
  620.               ò╩ë≡ÆTì⌡              ÉVé╡éó box é¬ì∞éτéΩéΘ
  621.  
  622.                    É} 20 : (foo1 X Y)é╠Ä└ìsüiéRüEéQüj
  623.  
  624.  
  625.   Env1 é¬É¼î≈é╡üAÉVé╡éó Box é┼éáéΘ Env2 é¬ì∞ɼé│éΩé▄é╖üBé╗é▒é┼üA(bar Y)
  626.  
  627. é╠â}âbâ`âôâOé¬ìséφéΩüAé╗é╠îïë╩ Y é¬ a é╔æ⌐ö¢é│éΩé▄é╖üB
  628.  
  629.  
  630.   A = b
  631.   B = a ->
  632.  
  633.  
  634. é▒é▒é┼ì─ÄÄìsé╖éΘé╞üAEnv2 é┼ò╩ë≡é¬ïüé▀éτéΩüAăé╠éµéñé╚îïë╩é╞é╚éΦé▄é╖üB
  635.  
  636.  
  637.  A = b
  638.  B = b ->
  639.  
  640.  
  641. é▒é╠ÅΩìçé═üAEnv2 é╠ì─ÄÄìsé╛é»é┼é╖é╠é┼è╚ÆPé┼é╖é╦üBăé¬ì┼îπé╠ì─ÄÄìsé╔é╚éΦ
  642.  
  643. é▄é╖üB
  644.  
  645.   Env2 é╠ rule-list é═ï≤é╚é╠é┼ì─ÄÄìsé═Ä╕ösé╡é▄é╖üBé╗é▒é┼üAEnv0 é╠ exec-env
  646.  
  647. é⌐éτ Env2 é≡ìφÅ£é╡üAEnv1 é╓âoâbâNâgâëâbâNé╡é▄é╖üBé╡é⌐é╡üAEnv1 é╠ rule-list
  648.  
  649. éαï≤é╚é╠é┼üAé▒é▒é┼éαì─ÄÄìsé╔Ä╕ösé╡é▄é╖üBé╗é╠îïë╩üAEnv0 é┼é═ Env1 é≡ exec-
  650.  
  651. env é⌐éτìφÅ£é╡é▄é╖üBé╖éΘé╞üAexec-env é═ï≤âèâXâg nil é╔é╚éΘé╠é┼üAé▒éΩê╚Åπ
  652.  
  653. âoâbâNâgâëâbâNé╖éΘè┬ï½é¬é╚é¡é╚éΦé▄é╖üB
  654.  
  655.  
  656.   Env0
  657.   goal      : (foo1 A B)
  658.   rule-list : nil
  659.   exec-rule : ((foo1 X Y) (foo X) (bar Y))  => Ä╕ös
  660.   exec-env  : nil
  661.   binding   : (A B)
  662.  
  663.  
  664. é╗é▒é┼üAò╧Éöæ⌐ö¢é≡âNâèâAé╡é─üAgoal é╞â}âbâ`âôâOé╖éΘïKæÑé≡ rule-list é⌐éτ
  665.  
  666. ÆTé╖é╠é┼é╖é¬üArule-list é═ï≤âèâXâg nil é┼é╖é╦üBé╗é╠îïë╩üAEnv0 é═â}âbâ`âô
  667.  
  668. âOÄ╕ösé╞é╚éΘé╠é┼é╖üBé▒éΩé≡ Box âéâfâïé┼ò\é╖é╞üAăé╠éµéñé╔é╚éΦé▄é╖üB
  669.  
  670.  
  671.                  Env0
  672.                 äíäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäó
  673.                 äá(foo1 X Y) (foo X) (bar Y)äá
  674.          Fail ü⌐äñäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäƒäúü⌐ Redo
  675.                 ü¬Fail                     äá
  676.             Env1äá                  Env2   ü½Redo
  677.             äíäƒäƒäƒäƒäó                äíäƒäƒäƒäƒäó
  678.             äá(foo X) äá                äá(bar Y) äá
  679.             äñäƒäƒäƒäƒäúü⌐ Redo  Fail ü⌐äñäƒäƒäƒäƒäú
  680.             ò╩ë≡û│é╡ => Box é═Å┴û┼      ò╩ë≡û│é╡ => Box é═Å┴û┼
  681.  
  682.                      É} 21 : (foo1 X Y)é╠Ä└ìsüiéSüj
  683.  
  684.  
  685.   ì─ÄÄìsé╡é▄é╡é╜é¬üAEnv2 é┼é═ò╩ë≡é¬î⌐é┬é⌐éτé╕üA Failé╞é╚éΦé▄é╡é╜üBăé╔
  686.  
  687. Env1 é¬ì─ÄÄìsé│éΩé▄é╡é╜é¬üAé▒éΩéαò╩ë≡é¬î⌐é┬é⌐éτé╕üAFail é╞é╚éΦé▄é╡é╜üBì┼
  688.  
  689. îπé╔ Env0 é╔û▀éΦé▄é╖é¬üAé▒éΩê╚Åπì─ÄÄìsé╖éΘÉ▀é¬é╚éóé╠é┼ Failé╞é╚éΘé╠é┼é╖üB
  690.  
  691.  
  692.  
  693.  
  694. üiédénéeüj
  695.